home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SPACE 2
/
SPACE - Library 2 - Volume 1.iso
/
games
/
73
/
pascal
/
scrnsave.pas
< prev
Wrap
Pascal/Delphi Source File
|
1986-11-21
|
2KB
|
67 lines
{
Program to demonstrate the method for saving the display to a
buffer, then restoring it later.
10/28/86 MJC
Use this in any way you like, but we can't guarantee this programs
fitness for any particular purpose. Have fun!
}
PROGRAM Scrnsave;
TYPE
Screen = PACKED ARRAY [ 1..32000 ] of BYTE;
S_Ptr = ^Screen; { pointer to screen data }
VAR
Scn_buf : Screen; { a place to stash the screen }
Scn_ptr : S_Ptr; { a pointer to screen }
FUNCTION Physbase : S_Ptr; { xbios routine returns address of screen }
Xbios( 2 );
PROCEDURE Sav_scn; { proc saves screen to buf }
{$P-} { turn pointer checking off }
begin
Scn_ptr := Physbase; { get addr of screen in memory }
Scn_buf := Scn_Ptr^; { do assignment, copy entire array }
end;
{$P=} { restore pointer checking to old state }
PROCEDURE Rest_scn; { restore screen from buf }
{$P-} { turn pointer checking off }
begin
Scn_ptr := Physbase; { get addr of screen in memory }
Scn_ptr^ := Scn_buf; { assign, copy array }
end;
{$P=} { set pointer checking to old state }
BEGIN
Writeln( 'This is a test - Press RETURN' );
Readln;
Sav_scn;
Writeln( 'Screen has been saved' );
Writeln;
Writeln;
Writeln( 'Press RETURN' );
Readln;
Rest_scn;
Writeln( ' Screen was just restored - PRESS RETURN ' );
Readln;
END.
{ END OF FILE: SCNSAVE.PAS }